package com.cn.zpark.utils;

import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

/**
 * @PackageName: com.cn.zpark.utils
 * @ClassName: DBUtils
 * @Description:工具类
 * @author: RZS
 * @date: 2022/3/30  20:13
 */
public class DBUtils {
    // 准备数据库连接信息
    private static String url;
    private static String user;
    private static String pwd;
    private static String driver;

    // 初始化配置信息
    static {// 静态块  作用：只执行一次（类被加载的时候执行）
        // 创建Properties工具类
        Properties p = new Properties();
        // 加载文件流对象
        InputStream ins = DBUtils.class.getClassLoader().getResourceAsStream("./jdbc.properties");

        try {
            // 加载文件流对象
            p.load(ins);

            driver = p.getProperty("driver");
            url = p.getProperty("url");
            user = p.getProperty("user");
            pwd = p.getProperty("pwd");

            // 注册驱动
            Class.forName(driver);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取数据库连接对象
     * @return
     */
    public static Connection getConn() throws Exception {
        // 返回数据库连接对象
        return DriverManager.getConnection(url, user, pwd);
    }

    /**
     * 关闭资源
     * @param conn
     * @param stat
     */
    public static void close(Connection conn, Statement stat, ResultSet res){
        try {
            if(res != null){
                res.close();
            }

            if(stat != null){
                stat.close();
            }

            if(conn != null){
                conn.close();
            }

        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
